package com.wangdong.yating;

import android.app.Application;

import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.cookie.CookieJarImpl;
import com.zhy.http.okhttp.cookie.store.PersistentCookieStore;
import com.zhy.http.okhttp.https.HttpsUtils;
import com.zhy.http.okhttp.log.LoggerInterceptor;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        /**
         * 处理 cookie
         * PersistentCookieStore //持久化cookie
         * SerializableHttpCookie //持久化cookie
         * MemoryCookieStore //cookie信息存在内存中
         *
         *如果遇到问题，欢迎反馈，当然也可以自己实现CookieJar接口，编写cookie管理相关代码。
         *
         * 此外，对于持久化cookie还可以使用https://github.com/franmontiel/PersistentCookieJar.
         *
         * 相当于框架中只是提供了几个实现类，你可以自行定制或者选择使用。
         */
        CookieJarImpl cookieJar = new CookieJarImpl(new PersistentCookieStore(getApplicationContext()));
        /**
         * 处理 HttpS
         * 具体证书 :
         * 只需要添加 certificates
         * @param 证书的inputstream,null,null
         * 双向证书 :
         * @param 证书的inputstream
         * @param 本地证书的inputstream,
         * @param 本地证书的密码
         *
         * 同样的，框架中只是提供了几个实现类，你可以自行实现SSLSocketFactory，传入sslSocketFactory即可。
         */
        HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null);

        OkHttpClient okHttpClient = new OkHttpClient.Builder()
//                .addInterceptor(new LoggerInterceptor("TAG"))
                .connectTimeout(10000L, TimeUnit.MILLISECONDS)//10秒
                .readTimeout(10000L, TimeUnit.MILLISECONDS)
                .cookieJar(cookieJar)//对于cookie配置通过cookieJar方法配置
                .addInterceptor(new LoggerInterceptor("okhttpwangdong"))//连接器拦截Log日志
                .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                //其他配置
                .build();

        OkHttpUtils.initClient(okHttpClient);
    }
}
